﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SOM.Common;
using SOM.Model;

public partial class Controles_MenuPrincipal : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario usuario = Common.RetornarUsuarioSessao(this);

            if (usuario == null)
            {
                RemoverItensNaoAutenticado();
            }
            else
            {
                if (usuario.usr_id_grupo != (int)GrupoDoUsuario.Administrador)
                {
                    RemoverItensNaoAdministrativos();
                }

                mnuPrincipal.FindItem("Usuarios").ChildItems[0].Enabled = false;
            }
        }

    }

    private void RemoverItensNaoAdministrativos()
    {
        MenuItem administracao = mnuPrincipal.Items[3];
        mnuPrincipal.Items.Remove(administracao);
    }

    private void RemoverItensNaoAutenticado()
    {
        List<string> values = new List<string>();
        values.Add("Reclamacoes");
        values.Add("Administracao");
        values.Add("Home");
        RemoverItens(mnuPrincipal.Items, values);

        values = new List<string>();
        values.Add("UsuarioAlterarCadastro");
        values.Add("usuarioRecuperarSenha");
        RemoverItens(mnuPrincipal.FindItem("Usuarios").ChildItems, values);
    }

    private void RemoverItens(MenuItemCollection itens, List<string> values)
    {
        foreach (string value in values)
        {
            foreach (MenuItem item in itens)
            {
                if(item.Value.Equals(value))
                {
                    itens.Remove(item);
                    break;
                }

            }
        }
    }
    protected void mnuPrincipal_MenuItemDataBound(object sender, MenuEventArgs e)
    {
        if (e.Item.Value.Equals("Administracao"))
        {
            Usuario usuario = Common.RetornarUsuarioSessao(this);
            if (!usuario.usr_id_grupo.Equals((int)GrupoDoUsuario.Administrador))
            {
                mnuPrincipal.Items.Remove(e.Item);
            }
        }
    }
}
